home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / bin / getweb < prev    next >
Text File  |  2008-09-09  |  10KB  |  419 lines

  1. #!/bin/sh
  2.  
  3. #
  4. # (c) Copyright Rick Richardson 2008
  5. #
  6.  
  7. #
  8. # PLEASE don't remove the copyright statements.  They should 
  9. # be displayed to the human that is running this.
  10. #
  11.  
  12. VERSION='$Id: getweb.in,v 1.77 2008/07/23 03:46:10 rick Exp $'
  13.  
  14. WGETOPTS="--passive-ftp -q"
  15.  
  16. usage() {
  17. cat <<EOF
  18.  
  19. Usage:
  20.     ./getweb something
  21.  
  22.     Convenience script to get extra somethings from the web,
  23.     such as ICC color profiles, firmware, PPD files, etc.
  24.  
  25.     $ ./getweb 2600n    # Get HP Color LaserJet 2600n .ICM files
  26.     $ ./getweb 1600    # Get HP Color LaserJet 1600 .ICM files
  27.     $ ./getweb 1500    # Get HP Color LaserJet 1500 .ICM files
  28.     $ ./getweb 1215    # Get HP Color LaserJet CP1215 .ICM files
  29.  
  30.     $ ./getweb 2530    # Get Konica Minolta 2530 DL .ICM files
  31.     $ ./getweb 2490    # Get Konica Minolta 2490 MF .ICM files
  32.     $ ./getweb 2480    # Get Konica Minolta 2480 MF .ICM files
  33.     $ ./getweb 6115    # Get Xerox Phaser 6115MFP .ICM files
  34.  
  35.     $ ./getweb 2430    # Get Konica Minolta 2430 DL .ICM files
  36.     $ ./getweb 2300    # Get Minolta 2300 DL .ICM files
  37.     $ ./getweb 2200    # Get Minolta 2200 DL .ICM files
  38.     $ ./getweb cpwl    # Get Minolta Color PageWorks/Pro L .ICM files
  39.  
  40.     $ ./getweb 300    # Get Samsung CLP-300 .ICM files
  41.     $ ./getweb 315    # Get Samsung CLP-315 .ICM files
  42.     $ ./getweb 600    # Get Samsung CLP-600 .ICM files
  43.     $ ./getweb 610    # Get Samsung CLP-610 .ICM files
  44.     $ ./getweb 2160    # Get Samsung CLX-2160 .ICM files
  45.     $ ./getweb 3160    # Get Samsung CLX-3160 .ICM files
  46.     $ ./getweb 6110    # Get Xerox Phaser 6110 and 6110MFP .ICM files
  47.  
  48.     $ ./getweb 500    # Get Lexmark C500 .ICM files
  49.  
  50.     $ ./getweb 3200    # Get Oki C3200 .ICM files
  51.     $ ./getweb 3300    # Get Oki C3300 .ICM files
  52.     $ ./getweb 3400    # Get Oki C3400 .ICM files
  53.     $ ./getweb 3530    # Get Oki C3530 MFP .ICM files
  54.     $ ./getweb 5100    # Get Oki C5100 .ICM files
  55.     $ ./getweb 5200    # Get Oki C5200 .ICM files
  56.     $ ./getweb 5500    # Get Oki C5500 .ICM files
  57.     $ ./getweb 5600    # Get Oki C5600 .ICM files
  58.     $ ./getweb 5800    # Get Oki C5800 .ICM files
  59.  
  60.     $ ./getweb 1020    # Get HP LJ 1020 firmware file
  61.     $ ./getweb 1018    # Get HP LJ 1005 firmware file
  62.     $ ./getweb 1005    # Get HP LJ 1005 firmware file
  63.     $ ./getweb 1000    # Get HP LJ 1000 firmware file
  64.  
  65.     $ ./getweb p1505    # Get HP LJ P1505 firmware file
  66.     $ ./getweb p1008    # Get HP LJ P1008 firmware file
  67.     $ ./getweb p1007    # Get HP LJ P1007 firmware file
  68.     $ ./getweb p1006    # Get HP LJ P1006 firmware file
  69.     $ ./getweb p1005    # Get HP LJ P1005 firmware file
  70.  
  71.     $ ./getweb all    # Get everything above
  72.  
  73.     $ ./getweb 2300dl_fw # Get Minolta 2300DL v2.55 firmware (experts only)
  74.  
  75.     $ ./getweb update    # Get latest version of this software.
  76. EOF
  77.     exit 1
  78. }
  79.  
  80. #
  81. #       Report an error and exit
  82. #
  83. PROGNAME=$0
  84. error() {
  85.     echo "`basename $PROGNAME`: $1" >&2
  86.     exit 1
  87. }
  88.  
  89. SYSTEM=`uname -s`
  90. WGET=`type wget 2>/dev/null`
  91. if [ "$SYSTEM" = Darwin -a "$WGET" = "" ]
  92. then
  93.     WGETOPTS=
  94.     wget() {
  95.     shift
  96.     curl -o $*
  97.     }
  98. fi
  99.  
  100. #
  101. #    Download a .EXE file from the web, unzip it, and extract the
  102. #    files we want
  103. getexe() {
  104.     url="$1"
  105.     exefile="$2"
  106.     shift; shift
  107.     
  108.     wget $WGETOPTS -O $exefile "$url/$exefile" ||
  109.     error "Couldn't download $url/$exefile"
  110.     unzip -oj $exefile "$@"
  111.     rm $exefile
  112. }
  113.  
  114. #
  115. #    Download a .tar.gz file from the web, untar it, and extract the
  116. #    files we want
  117. gettgz() {
  118.     url="$1"
  119.     file="$2"
  120.     what="$3"
  121.     
  122.     wget $WGETOPTS -O $file "$url/$file" ||
  123.     error "Couldn't download $url/$file"
  124.     gunzip <$file | tar xvf - $what
  125.     rm $file
  126. }
  127.  
  128. copyright() {
  129.     echo
  130.     echo "$1"
  131.     echo
  132. }
  133.  
  134. getone() {
  135.     case "$1" in
  136.     lj1000|1000)
  137.     gettgz \
  138.         http://foo2zjs.rkkda.com/firmware sihp1000.tar.gz \
  139.         ""
  140.     #echo "provided"
  141.     #getexe \
  142.         #ftp://ftp.hp.com/pub/softlib/software1/lj1488/lj-1145-2 \
  143.         #lj1488en.exe \
  144.         #sihp1000.img
  145.     copyright "(c) Copyright Hewlett-Packard 2001"
  146.     ;;
  147.     lj1005|1005)
  148.     gettgz \
  149.         http://foo2zjs.rkkda.com/firmware sihp1005.tar.gz \
  150.         ""
  151.     #echo "provided"
  152.     #getexe \
  153.         #ftp://ftp.hp.com/pub/softlib/software2/COL2222/lj-10067-2 \
  154.         #lj1005hostbased-en.exe \
  155.         #sihp1005.img
  156.     copyright "(c) Copyright Hewlett-Packard 2002"
  157.     ;;
  158.     lj1018|1018)
  159.     gettgz \
  160.         http://foo2zjs.rkkda.com/firmware sihp1018.tar.gz \
  161.         ""
  162.     copyright "(c) Copyright Hewlett-Packard 2005"
  163.     ;;
  164.     lj1020|1020)
  165.     gettgz \
  166.         http://foo2zjs.rkkda.com/firmware sihp1020.tar.gz \
  167.         ""
  168.     copyright "(c) Copyright Hewlett-Packard 2005"
  169.     ;;
  170.     [pP]100[57])
  171.     gettgz \
  172.         http://foo2zjs.rkkda.com/firmware sihpP1005.tar.gz \
  173.         ""
  174.     copyright "(c) Copyright Hewlett-Packard 2008"
  175.     ;;
  176.     [pP]100[68])
  177.     gettgz \
  178.         http://foo2zjs.rkkda.com/firmware sihpP1006.tar.gz \
  179.         ""
  180.     copyright "(c) Copyright Hewlett-Packard 2008"
  181.     ;;
  182.     [pP]1505)
  183.     gettgz \
  184.         http://foo2zjs.rkkda.com/firmware sihpP1505.tar.gz \
  185.         ""
  186.     copyright "(c) Copyright Hewlett-Packard 2008"
  187.     ;;
  188.     2200dl|2200)
  189.     getexe \
  190.         ftp://ftp.minolta-qms.com/pub/crc/out_going/win2000 m22dlicc.exe \
  191.         "*.icm"
  192.     copyright "(c) Copyright Minolta-QMS 1999"
  193.     ;;
  194.     2300dl|2300)
  195.     getexe \
  196.         ftp://ftp.minolta-qms.com/pub/crc/out_going/other m23dlicc.exe \
  197.         "*.icm"
  198.     gettgz \
  199.         http://foo2zjs.rkkda.com/icm km2430.tar.gz \
  200.         ""
  201.     copyright "(c) Copyright Minolta-QMS 2001"
  202.     ;;
  203.     2300dl_fw)
  204.     # 2300DL firmware upgrade to v2.55
  205.     BASE="http://crm01.minoltaeurope.com"
  206.     BASE="$BASE/openmind/technic/swfw/mswprtdl.nsf/logdwl"
  207.     FILE="MC2300DL_v255.zip"
  208.     URL="$BASE?openagent&4CE486C20839C75AC1256D9E001EBD1F/\$File/$FILE"
  209.     wget $WGETOPTS "$URL" || error "Couldn't download $URL"
  210.     echo "*** Now use a windows box to unzip and install $FILE ***"
  211.     ;;
  212.     cpwl|pageworks)
  213.     if true; then
  214.         getexe \
  215.         ftp://ftp.minolta-qms.com/pub/crc/out_going/windows cpplxp.exe \
  216.         "*.IC_"
  217.         for i in C*.IC_
  218.         do
  219.         base=`basename $i .IC_`
  220.         mv $base.IC_ $base.ic_
  221.         ./msexpand $base.ic_
  222.         rm -f $base.ic_
  223.         done
  224.         copyright "(c) Copyright Minolta-QMS 1998"
  225.     fi
  226.     ;;
  227.     2430)
  228.     gettgz \
  229.         http://foo2zjs.rkkda.com/icm km2430.tar.gz \
  230.         ""
  231.     copyright "(c) Copyright Konica Minolta 2003"
  232.     ;;
  233.     2530|2490|6115|2480)
  234.     gettgz \
  235.         http://foo2lava.rkkda.com/icm km2530.tar.gz \
  236.         ""
  237.     copyright "(c) Copyright Konica Minolta 2005"
  238.     copyright "(c) Copyright Rick Richardson 2007.  All Rights Reserved"
  239.     ;;
  240.     1215|1500|1600|2600*)
  241.     gettgz \
  242.         http://foo2hp.rkkda.com/icm hpclj2600n.tar.gz \
  243.         ""
  244.     gettgz \
  245.         http://foo2zjs.rkkda.com/icm km2430.tar.gz \
  246.         "km2430_2.icm"
  247.     copyright "(c) Copyright Hewlett-Packard 2003"
  248.     copyright "(c) Copyright Rick Richardson 2006.  All Rights Reserved"
  249.     ;;
  250.     300|315|2160|3160|6110)
  251.     gettgz \
  252.         http://foo2qpdl.rkkda.com/icm samclp300.tar.gz \
  253.         ""
  254.     copyright "(c) Copyright Samsung 2006"
  255.     ;;
  256.     600|610)
  257.     ;;
  258.  
  259.     500)
  260.     gettgz \
  261.         http://foo2slx.rkkda.com/icm lexc500.tar.gz \
  262.         ""
  263.     copyright "(c) Copyright Lexmark 2006"
  264.     ;;
  265.  
  266.     oki)
  267.     echo "Please wait, ~20MB is being downloaded from a slow site..."
  268.     getexe \
  269.         http://www.okiprintingsolutions.at/binaryData/16516/ \
  270.         ICCProfiles.zip \
  271.         "*OK3200*ICM" "*OK5600*ICM" "*rom732*7.zip"
  272.     unzip -oj *rom732*7.zip "*C3400*ICM"
  273.     rm -f *rom732*7.zip
  274.     for i in OK*ICM C3400*ICM; do
  275.         base=`basename $i .ICM`
  276.         mv "$base.ICM" "$base.icm"
  277.     done
  278.     copyright "(c) Copyright Okidata 2005, 2006"
  279.     ;;
  280.     3200|5100|5200)
  281.     gettgz \
  282.         http://foo2hiperc.rkkda.com/icm okic3200.tar.gz \
  283.         ""
  284.     copyright "(c) Copyright Okidata 2005"
  285.     ;;
  286.     3300|3400|3530)
  287.     gettgz \
  288.         http://foo2hiperc.rkkda.com/icm okic3400.tar.gz \
  289.         ""
  290.     copyright "(c) Copyright Okidata 2006"
  291.     ;;
  292.     5500|5600|5800)
  293.     gettgz \
  294.         http://foo2hiperc.rkkda.com/icm okic5600.tar.gz \
  295.         ""
  296.     copyright "(c) Copyright Okidata 2006"
  297.     ;;
  298.  
  299.     xPPD)
  300.     # Snarf PPD files from linuxprinting
  301.     [ -d PPD ] || mkdir PPD
  302.     for i in foomatic-db/printer/*.xml
  303.     do
  304.         case "$i" in
  305.         */Gen*)    continue;;
  306.         esac
  307.         printer=`basename $i .xml`
  308.         echo $printer
  309.         case "$printer" in
  310.         *1500*|*oak*)    driver=foo2oak;;
  311.         *)            driver=foo2zjs;;
  312.         esac
  313.         URL="http://www.linuxprinting.org/ppd-o-matic.cgi"
  314.         URL="$URL?driver=$driver&printer=$printer"
  315.         URL="$URL&.submit=Generate+PPD+file"
  316.         URL="$URL&show=1&.cgifields=shortgui&.cgifields=show"
  317.         wget $WGETOPTS -O PPD/$printer.ppd "$URL" ||
  318.         error "Couldn't dowload $URL"
  319.     done
  320.     ;;
  321.     ppd)
  322.     # Generate PPD files using local tools
  323.     [ -d PPD ] || mkdir PPD
  324.     for i in foomatic-db/printer/*.xml
  325.     do
  326.         printer=`basename $i .xml`
  327.         echo $printer
  328.         case "$printer" in
  329.         *M1005*|*M1120*)    driver=foo2xqx;;
  330.         *P1[05]0[56]*)    driver=foo2xqx;;
  331.         *P2014*)        driver=foo2xqx;;
  332.         *1500*|*OAKT*)    driver=foo2oak;;
  333.         *1600*|*2600*)    driver=foo2hp;;
  334.         *1215*)        driver=foo2hp;;
  335.         *2530*|*24[89]0*)    driver=foo2lava;;
  336.         *6115*)        driver=foo2lava;;
  337.         *C500*)        driver=foo2slx;;
  338.         *C3[234]00*)    driver=foo2hiperc;;
  339.         *C5[12568]00*)    driver=foo2hiperc;;
  340.         *CLP*|*CLX*|*6110*)    driver=foo2qpdl;;
  341.         *)            driver=foo2zjs;;
  342.         esac
  343.         ENGINE=../foomatic/foomatic-db-engine
  344.         PERL5LIB=$ENGINE/lib $ENGINE/foomatic-ppdfile \
  345.         -d $driver -p $printer \
  346.         > PPD/$printer.ppd
  347.         # | sed -e 's/\(^\*NickName.*\)"/\1 (foo2zjs recommended)"/'
  348.     done
  349.     ;;
  350.     update)
  351.     url=http://foo2zjs.rkkda.com
  352.     file=foo2zjs.tar.gz
  353.     wget $WGETOPTS -O $file $url/$file ||
  354.         error "Couldn't download $url/$exefile"
  355.     mv getweb getweb.old
  356.     HERE=`pwd`
  357.     cd .. 
  358.     tar zxf $HERE/$file
  359.     cd $HERE
  360.     echo "The tarball is extracted and the current directory is up to date."
  361.     echo -e "Remove the tarball (y/n)? \c"
  362.     read ans
  363.     if [ "$ans" = y ]; then
  364.         rm -f $file
  365.     fi
  366.     ;;
  367.     "")
  368.     usage
  369.     ;;
  370.     *)
  371.     error "Don't know how to get extra stuff for printer $1"
  372.     ;;
  373.     esac
  374. }
  375.  
  376. if [ $# = 0 ]; then
  377.     echo "$VERSION"
  378.     usage
  379. fi
  380.  
  381. for i in $*
  382. do
  383.     case "$1" in
  384.     all)
  385.     getone 1000
  386.     getone 1005
  387.     getone 1018
  388.     getone 1020
  389.  
  390.     getone p1005
  391.     getone p1006
  392.     getone p1505
  393.  
  394.     getone 2200
  395.     getone 2300
  396.     # getone 2430 already done
  397.     # getone cpwl # file doesn't exist 1/28/08
  398.  
  399.     getone 2600n
  400.     # getone 1215 # already done
  401.  
  402.     getone 2530
  403.  
  404.     getone 300
  405.     # getone 6110 already done
  406.     getone 600
  407.  
  408.     getone 500
  409.  
  410.     getone 3200
  411.     getone 3400
  412.     getone 5600
  413.     ;;
  414.     *)    
  415.     getone $i
  416.     ;;
  417.     esac
  418. done
  419.